source("../../lib/som-utils.R")
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
source("../../lib/maps-utils.R")
Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
mpr.set_base_path_analysis()
model <- mpr.load_model("som-274.rds.xz")
summary(model)
SOM of size 5x5 with a hexagonal topology and a bubble neighbourhood function.
The number of data layers is 1.
Distance measure(s) used: sumofsquares.
Training data included: 94881 objects.
Mean distance to the closest unit in the map: 0.772.
plot(model, type="changes")
df <- mpr.load_data("datos_mes.csv.xz")
df
summary(df)
id_estacion fecha fecha_cnt tmax
Length:94881 Length:94881 Min. : 1.000 Min. :-53.0
Class :character Class :character 1st Qu.: 4.000 1st Qu.:148.0
Mode :character Mode :character Median : 6.000 Median :198.0
Mean : 6.497 Mean :200.2
3rd Qu.: 9.000 3rd Qu.:255.0
Max. :12.000 Max. :403.0
tmin precip nevada prof_nieve
Min. :-121.00 Min. : 0.00 Min. :0.000000 Min. : 0.000
1st Qu.: 53.00 1st Qu.: 3.00 1st Qu.:0.000000 1st Qu.: 0.000
Median : 98.00 Median : 10.00 Median :0.000000 Median : 0.000
Mean : 98.86 Mean : 16.25 Mean :0.000295 Mean : 0.467
3rd Qu.: 148.00 3rd Qu.: 22.00 3rd Qu.:0.000000 3rd Qu.: 0.000
Max. : 254.00 Max. :422.00 Max. :6.000000 Max. :1834.000
longitud latitud altitud
Min. :27.82 Min. :-17.8889 Min. : 1.0
1st Qu.:38.28 1st Qu.: -5.6417 1st Qu.: 42.0
Median :40.82 Median : -3.4500 Median : 247.0
Mean :39.66 Mean : -3.4350 Mean : 418.5
3rd Qu.:42.08 3rd Qu.: 0.4914 3rd Qu.: 656.0
Max. :43.57 Max. : 4.2156 Max. :2535.0
world <- ne_countries(scale = "medium", returnclass = "sf")
spain <- subset(world, admin == "Spain")
plot(model, type="count", shape = "straight", palette.name = mpr.degrade.bleu)
NĂºmero de elementos en cada celda:
nb <- table(model$unit.classif)
print(nb)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1198 3604 4971 5877 5693 5697 2634 2656 3208 6529 4219 4028 1368 5752 1522 4928
17 18 19 20 21 22 23 24 25
2895 2554 3372 2537 4741 3293 2858 3739 5008
ComprobaciĂ³n de nodos vacĂos:
dim_model <- 5*5;
len_nb = length(nb);
empty_nodes <- dim_model != len_nb;
if (empty_nodes) {
print(paste("[Warning] Existen nodos vacĂos: ", len_nb, "/", dim_model))
}
plot(model, type="dist.neighbours", shape = "straight")
model_colnames = c("fecha_cnt", "tmax", "tmin", "longitud", "latitud", "altitud")
model_ncol = length(model_colnames)
plot(model, shape = "straight")
par(mfrow=c(3,4))
for (j in 1:model_ncol) {
plot(model, type="property", property=getCodes(model,1)[,j],
palette.name=mpr.coolBlueHotRed,
main=model_colnames[j],
cex=0.5, shape = "straight")
}
if (!empty_nodes) {
cor <- apply(getCodes(model,1), 2, mpr.weighted.correlation, w=nb, som=model)
print(cor)
}
fecha_cnt tmax tmin longitud latitud altitud
[1,] -0.09845383 -0.7232881 -0.8671244 0.5430281 0.3207037 0.4009103
[2,] 0.85670052 0.1997408 0.2237538 0.2286185 0.2040681 -0.0738962
RepresentaciĂ³n de cada variable en un mapa de factores:
if (!empty_nodes) {
par(mfrow=c(1,1))
plot(cor[1,], cor[2,], xlim=c(-1,1), ylim=c(-1,1), type="n")
lines(c(-1,1),c(0,0))
lines(c(0,0),c(-1,1))
text(cor[1,], cor[2,], labels=model_colnames, cex=0.75)
symbols(0,0,circles=1,inches=F,add=T)
}
Importancia de cada variable - varianza ponderada por el tamaño de la celda:
if (!empty_nodes) {
sigma2 <- sqrt(apply(getCodes(model,1),2,function(x,effectif)
{m<-sum(effectif*(x-weighted.mean(x,effectif))^2)/(sum(effectif)-1)},
effectif=nb))
print(sort(sigma2,decreasing=T))
}
longitud altitud latitud tmax tmin fecha_cnt
0.9623280 0.9398105 0.9365998 0.9346051 0.9228478 0.9132803
if (!empty_nodes) {
hac <- mpr.hac(model, nb)
}
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=3)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=3)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.00 1st Qu.:200.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.00 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.51 Mean :217.2 Mean :150.4 Mean : 7.421 Mean :0
3rd Qu.: 9.00 3rd Qu.:253.0 3rd Qu.:189.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.00 Max. :356.0 Max. :244.0 Max. :309.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03075 Mean :28.37 Mean :-16.05 Mean : 520.9
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.0 Min. :-121.00 Min. : 0.00
1st Qu.: 2.000 1st Qu.:126.0 1st Qu.: 29.00 1st Qu.: 6.00
Median : 3.000 Median :161.0 Median : 62.00 Median : 14.00
Mean : 3.276 Mean :157.7 Mean : 59.53 Mean : 19.08
3rd Qu.: 4.000 3rd Qu.:192.0 3rd Qu.: 91.00 3rd Qu.: 26.00
Max. :12.000 Max. :307.0 Max. : 191.00 Max. :371.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.00 Min. :35.28 Min. :-8.649
1st Qu.:0.000000 1st Qu.: 0.00 1st Qu.:38.99 1st Qu.:-4.850
Median :0.000000 Median : 0.00 Median :41.10 Median :-2.483
Mean :0.000499 Mean : 1.13 Mean :40.59 Mean :-2.354
3rd Qu.:0.000000 3rd Qu.: 0.00 3rd Qu.:42.29 3rd Qu.: 0.595
Max. :6.000000 Max. :1834.00 Max. :43.57 Max. : 4.216
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 261.0
Mean : 478.5
3rd Qu.: 687.0
Max. :2535.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 4.00 Min. : 8.0 Min. :-110.0 Min. : 0.00
1st Qu.: 7.00 1st Qu.:178.0 1st Qu.: 83.0 1st Qu.: 2.00
Median : 9.00 Median :240.0 Median : 129.0 Median : 9.00
Mean : 8.95 Mean :230.3 Mean : 121.7 Mean : 15.31
3rd Qu.:11.00 3rd Qu.:286.0 3rd Qu.: 165.0 3rd Qu.: 21.00
Max. :12.00 Max. :403.0 Max. : 254.0 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500
Median :0.0000000 Median : 0.00000 Median :40.95 Median :-2.7331
Mean :0.0001803 Mean : 0.02173 Mean :40.52 Mean :-2.5168
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 251.0
Mean : 358.7
3rd Qu.: 639.0
Max. :1894.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=4)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=4)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.00 1st Qu.:200.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.00 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.51 Mean :217.2 Mean :150.4 Mean : 7.421 Mean :0
3rd Qu.: 9.00 3rd Qu.:253.0 3rd Qu.:189.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.00 Max. :356.0 Max. :244.0 Max. :309.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03075 Mean :28.37 Mean :-16.05 Mean : 520.9
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:132.0 1st Qu.: 33.00 1st Qu.: 5.00
Median :3.000 Median :164.0 Median : 64.00 Median : 13.00
Mean :3.006 Mean :163.5 Mean : 63.08 Mean : 17.84
3rd Qu.:4.000 3rd Qu.:194.0 3rd Qu.: 92.00 3rd Qu.: 24.00
Max. :8.000 Max. :307.0 Max. :191.00 Max. :371.00
nevada prof_nieve longitud latitud
Min. :0.00000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-5.4981
Median :0.00000 Median : 0.00000 Median :40.96 Median :-2.7331
Mean :0.00054 Mean : 0.08802 Mean :40.48 Mean :-2.5254
3rd Qu.:0.00000 3rd Qu.: 0.00000 3rd Qu.:42.14 3rd Qu.: 0.4914
Max. :6.00000 Max. :75.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.0
Median : 196.0
Mean : 345.1
3rd Qu.: 617.0
Max. :1668.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. : 4.00 Min. : 8.0 Min. :-110.0 Min. : 0.00
1st Qu.: 7.00 1st Qu.:178.0 1st Qu.: 83.0 1st Qu.: 2.00
Median : 9.00 Median :240.0 Median : 129.0 Median : 9.00
Mean : 8.95 Mean :230.3 Mean : 121.7 Mean : 15.31
3rd Qu.:11.00 3rd Qu.:286.0 3rd Qu.: 165.0 3rd Qu.: 21.00
Max. :12.00 Max. :403.0 Max. : 254.0 Max. :422.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-4.8500
Median :0.0000000 Median : 0.00000 Median :40.95 Median :-2.7331
Mean :0.0001803 Mean : 0.02173 Mean :40.52 Mean :-2.5168
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4914
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 44.0
Median : 251.0
Mean : 358.7
3rd Qu.: 639.0
Max. :1894.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 31.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 78.00 Median : 12.00 Median : 29.00
Mean : 6.569 Mean : 87.06 Mean : 16.29 Mean : 34.19
3rd Qu.:10.000 3rd Qu.:142.00 3rd Qu.: 65.00 3rd Qu.: 46.75
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :180.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.8842 Median :2143
Mean :0 Mean : 13.81 Mean :41.93 Mean :-0.2669 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=5)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=5)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : 13.0 Min. :-33.0 Min. : 0.000 Min. :0
1st Qu.: 4.00 1st Qu.:200.0 1st Qu.:132.0 1st Qu.: 0.000 1st Qu.:0
Median : 7.00 Median :225.0 Median :160.0 Median : 1.000 Median :0
Mean : 6.51 Mean :217.2 Mean :150.4 Mean : 7.421 Mean :0
3rd Qu.: 9.00 3rd Qu.:253.0 3rd Qu.:189.0 3rd Qu.: 8.000 3rd Qu.:0
Max. :12.00 Max. :356.0 Max. :244.0 Max. :309.000 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.: 0.00000 1st Qu.:28.31 1st Qu.:-16.50 1st Qu.: 25.0
Median : 0.00000 Median :28.44 Median :-16.33 Median : 35.0
Mean : 0.03075 Mean :28.37 Mean :-16.05 Mean : 520.9
3rd Qu.: 0.00000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 632.0
Max. :46.00000 Max. :28.95 Max. :-13.60 Max. :2371.0
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:132.0 1st Qu.: 33.00 1st Qu.: 5.00
Median :3.000 Median :164.0 Median : 64.00 Median : 13.00
Mean :3.006 Mean :163.5 Mean : 63.08 Mean : 17.84
3rd Qu.:4.000 3rd Qu.:194.0 3rd Qu.: 92.00 3rd Qu.: 24.00
Max. :8.000 Max. :307.0 Max. :191.00 Max. :371.00
nevada prof_nieve longitud latitud
Min. :0.00000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-5.4981
Median :0.00000 Median : 0.00000 Median :40.96 Median :-2.7331
Mean :0.00054 Mean : 0.08802 Mean :40.48 Mean :-2.5254
3rd Qu.:0.00000 3rd Qu.: 0.00000 3rd Qu.:42.14 3rd Qu.: 0.4914
Max. :6.00000 Max. :75.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.0
Median : 196.0
Mean : 345.1
3rd Qu.: 617.0
Max. :1668.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :165.0 Min. : 54.0 Min. : 0.0 Min. :0
1st Qu.: 6.000 1st Qu.:251.0 1st Qu.:133.0 1st Qu.: 1.0 1st Qu.:0
Median : 7.000 Median :278.0 Median :158.0 Median : 6.0 Median :0
Mean : 7.498 Mean :277.4 Mean :157.8 Mean : 10.7 Mean :0
3rd Qu.: 9.000 3rd Qu.:304.0 3rd Qu.:183.0 3rd Qu.: 15.0 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-5.3456 1st Qu.: 43.3
Median : 0.00000 Median :40.95 Median :-2.9056 Median : 240.0
Mean : 0.00302 Mean :40.50 Mean :-2.6288 Mean : 345.9
3rd Qu.: 0.00000 3rd Qu.:42.18 3rd Qu.: 0.4483 3rd Qu.: 627.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 31.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 78.00 Median : 12.00 Median : 29.00
Mean : 6.569 Mean : 87.06 Mean : 16.29 Mean : 34.19
3rd Qu.:10.000 3rd Qu.:142.00 3rd Qu.: 65.00 3rd Qu.: 46.75
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :180.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.8842 Median :2143
Mean :0 Mean : 13.81 Mean :41.93 Mean :-0.2669 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 7.00 Min. : 8.0 Min. :-110.00 Min. : 0.00
1st Qu.:10.00 1st Qu.:129.0 1st Qu.: 40.00 1st Qu.: 6.00
Median :11.00 Median :165.0 Median : 73.00 Median : 15.00
Mean :10.98 Mean :164.3 Mean : 71.25 Mean : 21.76
3rd Qu.:12.00 3rd Qu.:199.0 3rd Qu.: 101.00 3rd Qu.: 30.00
Max. :12.00 Max. :284.0 Max. : 188.00 Max. :299.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.:-4.8500
Median :0.0000000 Median : 0.00000 Median :40.96 Median :-2.4544
Mean :0.0004325 Mean : 0.04792 Mean :40.54 Mean :-2.3602
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 47.0
Median : 261.0
Mean : 376.6
3rd Qu.: 667.0
Max. :1572.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=6)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=6)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :128 Median : 50.00 Median : 3.00 Median :0
Mean : 6.603 Mean :138 Mean : 60.53 Mean : 11.63 Mean :0
3rd Qu.:10.000 3rd Qu.:183 3rd Qu.: 98.00 3rd Qu.: 14.00 3rd Qu.:0
Max. :12.000 Max. :253 Max. :159.00 Max. :309.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1753 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:132.0 1st Qu.: 33.00 1st Qu.: 5.00
Median :3.000 Median :164.0 Median : 64.00 Median : 13.00
Mean :3.006 Mean :163.5 Mean : 63.08 Mean : 17.84
3rd Qu.:4.000 3rd Qu.:194.0 3rd Qu.: 92.00 3rd Qu.: 24.00
Max. :8.000 Max. :307.0 Max. :191.00 Max. :371.00
nevada prof_nieve longitud latitud
Min. :0.00000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.00000 1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-5.4981
Median :0.00000 Median : 0.00000 Median :40.96 Median :-2.7331
Mean :0.00054 Mean : 0.08802 Mean :40.48 Mean :-2.5254
3rd Qu.:0.00000 3rd Qu.: 0.00000 3rd Qu.:42.14 3rd Qu.: 0.4914
Max. :6.00000 Max. :75.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 43.0
Median : 196.0
Mean : 345.1
3rd Qu.: 617.0
Max. :1668.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : 87.0 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.00 1st Qu.:212.0 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.00 Median :233.0 Median :168.0 Median : 1.000 Median :0
Mean : 6.49 Mean :233.8 Mean :169.3 Mean : 6.536 Mean :0
3rd Qu.: 9.00 3rd Qu.:259.0 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.00 Max. :356.0 Max. :244.0 Max. :145.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003511 Mean :28.38 Mean :-15.96 Mean :131.9
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :165.0 Min. : 54.0 Min. : 0.0 Min. :0
1st Qu.: 6.000 1st Qu.:251.0 1st Qu.:133.0 1st Qu.: 1.0 1st Qu.:0
Median : 7.000 Median :278.0 Median :158.0 Median : 6.0 Median :0
Mean : 7.498 Mean :277.4 Mean :157.8 Mean : 10.7 Mean :0
3rd Qu.: 9.000 3rd Qu.:304.0 3rd Qu.:183.0 3rd Qu.: 15.0 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :422.0 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-8.6494 Min. : 1.0
1st Qu.: 0.00000 1st Qu.:38.95 1st Qu.:-5.3456 1st Qu.: 43.3
Median : 0.00000 Median :40.95 Median :-2.9056 Median : 240.0
Mean : 0.00302 Mean :40.50 Mean :-2.6288 Mean : 345.9
3rd Qu.: 0.00000 3rd Qu.:42.18 3rd Qu.: 0.4483 3rd Qu.: 627.0
Max. :35.00000 Max. :43.57 Max. : 4.2156 Max. :1894.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 31.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 78.00 Median : 12.00 Median : 29.00
Mean : 6.569 Mean : 87.06 Mean : 16.29 Mean : 34.19
3rd Qu.:10.000 3rd Qu.:142.00 3rd Qu.: 65.00 3rd Qu.: 46.75
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :180.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.8842 Median :2143
Mean :0 Mean : 13.81 Mean :41.93 Mean :-0.2669 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip
Min. : 7.00 Min. : 8.0 Min. :-110.00 Min. : 0.00
1st Qu.:10.00 1st Qu.:129.0 1st Qu.: 40.00 1st Qu.: 6.00
Median :11.00 Median :165.0 Median : 73.00 Median : 15.00
Mean :10.98 Mean :164.3 Mean : 71.25 Mean : 21.76
3rd Qu.:12.00 3rd Qu.:199.0 3rd Qu.: 101.00 3rd Qu.: 30.00
Max. :12.00 Max. :284.0 Max. : 188.00 Max. :299.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.:-4.8500
Median :0.0000000 Median : 0.00000 Median :40.96 Median :-2.4544
Mean :0.0004325 Mean : 0.04792 Mean :40.54 Mean :-2.3602
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 47.0
Median : 261.0
Mean : 376.6
3rd Qu.: 667.0
Max. :1572.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=8)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=8)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :128 Median : 50.00 Median : 3.00 Median :0
Mean : 6.603 Mean :138 Mean : 60.53 Mean : 11.63 Mean :0
3rd Qu.:10.000 3rd Qu.:183 3rd Qu.: 98.00 3rd Qu.: 14.00 3rd Qu.:0
Max. :12.000 Max. :253 Max. :159.00 Max. :309.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1753 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip
Min. :1.00 Min. : 69.0 Min. :-41.00 Min. : 0.00
1st Qu.:2.00 1st Qu.:160.0 1st Qu.: 60.00 1st Qu.: 3.00
Median :3.00 Median :184.0 Median : 85.00 Median : 10.00
Mean :3.14 Mean :187.6 Mean : 86.01 Mean : 14.03
3rd Qu.:4.00 3rd Qu.:215.0 3rd Qu.:113.00 3rd Qu.: 20.00
Max. :8.00 Max. :307.0 Max. :191.00 Max. :259.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-6.9492
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:37.26 1st Qu.:-4.8458
Median :0.0000000 Median : 0.00000 Median :39.47 Median : 0.3664
Mean :0.0002341 Mean : 0.02341 Mean :39.18 Mean :-1.2081
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.31 3rd Qu.: 1.2008
Max. :2.0000000 Max. :40.00000 Max. :43.36 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 19.0
Median : 61.0
Mean :114.1
3rd Qu.:158.0
Max. :816.0
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:111.0 1st Qu.: 15.00 1st Qu.: 7.00
Median :3.000 Median :141.0 Median : 43.00 Median : 16.00
Mean :2.879 Mean :140.7 Mean : 41.42 Mean : 21.44
3rd Qu.:4.000 3rd Qu.:170.0 3rd Qu.: 68.75 3rd Qu.: 29.00
Max. :6.000 Max. :256.0 Max. :138.00 Max. :371.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :37.13 Min. :-8.649
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:40.66 1st Qu.:-5.649
Median :0.000000 Median : 0.0000 Median :41.99 Median :-3.789
Mean :0.000829 Mean : 0.1491 Mean :41.71 Mean :-3.770
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.87 3rd Qu.:-2.039
Max. :6.000000 Max. :75.0000 Max. :43.57 Max. : 2.482
altitud
Min. : 4.0
1st Qu.: 263.0
Median : 617.0
Mean : 563.3
3rd Qu.: 790.0
Max. :1668.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : 87.0 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.00 1st Qu.:212.0 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.00 Median :233.0 Median :168.0 Median : 1.000 Median :0
Mean : 6.49 Mean :233.8 Mean :169.3 Mean : 6.536 Mean :0
3rd Qu.: 9.00 3rd Qu.:259.0 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.00 Max. :356.0 Max. :244.0 Max. :145.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003511 Mean :28.38 Mean :-15.96 Mean :131.9
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 5.000 Min. :210.0 Min. :105.0 Min. : 0.000 Min. :0
1st Qu.: 7.000 1st Qu.:272.0 1st Qu.:163.0 1st Qu.: 0.000 1st Qu.:0
Median : 8.000 Median :290.0 Median :181.0 Median : 3.000 Median :0
Mean : 7.578 Mean :292.5 Mean :180.4 Mean : 8.005 Mean :0
3rd Qu.: 9.000 3rd Qu.:311.0 3rd Qu.:198.0 3rd Qu.: 11.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :320.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :35.28 Min. :-6.9492 Min. : 1.0
1st Qu.:0 1st Qu.:37.42 1st Qu.:-4.4881 1st Qu.: 21.0
Median :0 Median :39.49 Median : 0.3664 Median : 68.6
Mean :0 Mean :39.42 Mean :-1.0363 Mean :130.2
3rd Qu.:0 3rd Qu.:41.48 3rd Qu.: 1.1789 3rd Qu.:185.0
Max. :0 Max. :43.36 Max. : 4.2156 Max. :953.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :165.0 Min. : 54.0 Min. : 0.00 Min. :0
1st Qu.: 6.000 1st Qu.:231.0 1st Qu.:117.0 1st Qu.: 2.00 1st Qu.:0
Median : 7.000 Median :259.0 Median :136.0 Median : 8.00 Median :0
Mean : 7.425 Mean :263.6 Mean :137.2 Mean : 13.15 Mean :0
3rd Qu.: 9.000 3rd Qu.:294.0 3rd Qu.:155.0 3rd Qu.: 18.00 3rd Qu.:0
Max. :11.000 Max. :400.0 Max. :250.0 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :37.13 Min. :-8.649 Min. : 4.0
1st Qu.: 0.00000 1st Qu.:40.41 1st Qu.:-5.649 1st Qu.: 251.0
Median : 0.00000 Median :41.65 Median :-3.799 Median : 611.0
Mean : 0.00578 Mean :41.48 Mean :-4.081 Mean : 542.6
3rd Qu.: 0.00000 3rd Qu.:42.89 3rd Qu.:-2.483 3rd Qu.: 779.0
Max. :35.00000 Max. :43.57 Max. : 2.418 Max. :1894.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 31.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 78.00 Median : 12.00 Median : 29.00
Mean : 6.569 Mean : 87.06 Mean : 16.29 Mean : 34.19
3rd Qu.:10.000 3rd Qu.:142.00 3rd Qu.: 65.00 3rd Qu.: 46.75
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :180.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.8842 Median :2143
Mean :0 Mean : 13.81 Mean :41.93 Mean :-0.2669 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip
Min. : 7.00 Min. : 8.0 Min. :-110.00 Min. : 0.00
1st Qu.:10.00 1st Qu.:129.0 1st Qu.: 40.00 1st Qu.: 6.00
Median :11.00 Median :165.0 Median : 73.00 Median : 15.00
Mean :10.98 Mean :164.3 Mean : 71.25 Mean : 21.76
3rd Qu.:12.00 3rd Qu.:199.0 3rd Qu.: 101.00 3rd Qu.: 30.00
Max. :12.00 Max. :284.0 Max. : 188.00 Max. :299.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-8.6494
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:38.99 1st Qu.:-4.8500
Median :0.0000000 Median : 0.00000 Median :40.96 Median :-2.4544
Mean :0.0004325 Mean : 0.04792 Mean :40.54 Mean :-2.3602
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.08 3rd Qu.: 0.4942
Max. :3.0000000 Max. :59.00000 Max. :43.57 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 47.0
Median : 261.0
Mean : 376.6
3rd Qu.: 667.0
Max. :1572.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) {
plot(hac, hang=-1, labels=F)
rect.hclust(hac, k=10)
}
A quĂ© clĂºster pertenece cada nodo del mapa de kohonen:
if (!empty_nodes) {
groups <- cutree(hac, k=10)
plot(model, type="mapping",
bgcol=c("steelblue1","sienna1","yellowgreen","red","blue","yellow","purple","green","white","#1f77b4", '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2')[groups],
shape = "straight", labels = "")
add.cluster.boundaries(model, clustering=groups)
}
if (!empty_nodes) {
# Asignamos a cada registro su clĂºster
df$cluster <- groups[model$unit.classif]
}
Nuevos dataframes por cluster
if (!empty_nodes) {
# Creo nuevos dataframes, uno por cada clĂºster.
df.cluster01 <- subset(df, cluster==1)
df.cluster02 <- subset(df, cluster==2)
df.cluster03 <- subset(df, cluster==3)
df.cluster04 <- subset(df, cluster==4)
df.cluster05 <- subset(df, cluster==5)
df.cluster06 <- subset(df, cluster==6)
df.cluster07 <- subset(df, cluster==7)
df.cluster08 <- subset(df, cluster==8)
df.cluster09 <- subset(df, cluster==9)
df.cluster10 <- subset(df, cluster==10)
# Extraigo del dataframe las features.
df.cluster01 <- select(df.cluster01, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster02 <- select(df.cluster02, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster03 <- select(df.cluster03, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster04 <- select(df.cluster04, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster05 <- select(df.cluster05, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster06 <- select(df.cluster06, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster07 <- select(df.cluster07, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster08 <- select(df.cluster08, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster09 <- select(df.cluster09, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
df.cluster10 <- select(df.cluster10, fecha_cnt, tmax, tmin, precip, nevada, prof_nieve, longitud, latitud, altitud)
}
if (!empty_nodes) summary(df.cluster01)
fecha_cnt tmax tmin precip nevada
Min. : 1.000 Min. : 13 Min. :-33.00 Min. : 0.00 Min. :0
1st Qu.: 4.000 1st Qu.: 94 1st Qu.: 23.00 1st Qu.: 0.00 1st Qu.:0
Median : 7.000 Median :128 Median : 50.00 Median : 3.00 Median :0
Mean : 6.603 Mean :138 Mean : 60.53 Mean : 11.63 Mean :0
3rd Qu.:10.000 3rd Qu.:183 3rd Qu.: 98.00 3rd Qu.: 14.00 3rd Qu.:0
Max. :12.000 Max. :253 Max. :159.00 Max. :309.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.0000 Min. :28.31 Min. :-16.5 Min. :2371
1st Qu.: 0.0000 1st Qu.:28.31 1st Qu.:-16.5 1st Qu.:2371
Median : 0.0000 Median :28.31 Median :-16.5 Median :2371
Mean : 0.1753 Mean :28.31 Mean :-16.5 Mean :2371
3rd Qu.: 0.0000 3rd Qu.:28.31 3rd Qu.:-16.5 3rd Qu.:2371
Max. :46.0000 Max. :28.31 Max. :-16.5 Max. :2371
if (!empty_nodes) summary(df.cluster02)
fecha_cnt tmax tmin precip nevada
Min. :1.00 Min. :100.0 Min. :-12.0 Min. : 0.00 Min. :0
1st Qu.:2.00 1st Qu.:168.0 1st Qu.: 76.0 1st Qu.: 3.00 1st Qu.:0
Median :3.00 Median :193.0 Median :100.0 Median : 11.00 Median :0
Mean :3.23 Mean :198.3 Mean :100.6 Mean : 15.42 Mean :0
3rd Qu.:5.00 3rd Qu.:225.0 3rd Qu.:125.0 3rd Qu.: 22.00 3rd Qu.:0
Max. :8.00 Max. :307.0 Max. :191.0 Max. :259.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :35.28 Min. :-6.949 Min. : 1.00
1st Qu.: 0.00000 1st Qu.:36.50 1st Qu.:-6.257 1st Qu.: 21.00
Median : 0.00000 Median :36.85 Median :-5.600 Median : 34.00
Mean : 0.02453 Mean :36.98 Mean :-5.161 Mean : 94.29
3rd Qu.: 0.00000 3rd Qu.:37.42 3rd Qu.:-4.488 3rd Qu.: 90.00
Max. :34.00000 Max. :39.47 Max. :-0.500 Max. :582.00
if (!empty_nodes) summary(df.cluster03)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : 69.0 Min. :-41.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:154.0 1st Qu.: 52.00 1st Qu.: 4.00
Median :3.000 Median :180.0 Median : 77.00 Median : 9.00
Mean :3.088 Mean :181.5 Mean : 77.63 Mean : 13.23
3rd Qu.:4.000 3rd Qu.:209.0 3rd Qu.:103.00 3rd Qu.: 18.00
Max. :6.000 Max. :300.0 Max. :178.00 Max. :135.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :37.79 Min. :-2.3308
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:39.48 1st Qu.: 0.4731
Median :0.0000000 Median : 0.00000 Median :41.15 Median : 0.7403
Mean :0.0003687 Mean : 0.02277 Mean :40.45 Mean : 1.0651
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.62 3rd Qu.: 2.0792
Max. :2.0000000 Max. :40.00000 Max. :43.36 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 14.0
Median : 71.0
Mean :125.5
3rd Qu.:191.0
Max. :816.0
if (!empty_nodes) summary(df.cluster04)
fecha_cnt tmax tmin precip
Min. :1.000 Min. : -4.0 Min. :-89.00 Min. : 0.00
1st Qu.:2.000 1st Qu.:111.0 1st Qu.: 15.00 1st Qu.: 7.00
Median :3.000 Median :141.0 Median : 43.00 Median : 16.00
Mean :2.879 Mean :140.7 Mean : 41.42 Mean : 21.44
3rd Qu.:4.000 3rd Qu.:170.0 3rd Qu.: 68.75 3rd Qu.: 29.00
Max. :6.000 Max. :256.0 Max. :138.00 Max. :371.00
nevada prof_nieve longitud latitud
Min. :0.000000 Min. : 0.0000 Min. :37.13 Min. :-8.649
1st Qu.:0.000000 1st Qu.: 0.0000 1st Qu.:40.66 1st Qu.:-5.649
Median :0.000000 Median : 0.0000 Median :41.99 Median :-3.789
Mean :0.000829 Mean : 0.1491 Mean :41.71 Mean :-3.770
3rd Qu.:0.000000 3rd Qu.: 0.0000 3rd Qu.:42.87 3rd Qu.:-2.039
Max. :6.000000 Max. :75.0000 Max. :43.57 Max. : 2.482
altitud
Min. : 4.0
1st Qu.: 263.0
Median : 617.0
Mean : 563.3
3rd Qu.: 790.0
Max. :1668.0
if (!empty_nodes) summary(df.cluster05)
fecha_cnt tmax tmin precip nevada
Min. : 1.00 Min. : 87.0 Min. : 64.0 Min. : 0.000 Min. :0
1st Qu.: 3.00 1st Qu.:212.0 1st Qu.:150.0 1st Qu.: 0.000 1st Qu.:0
Median : 6.00 Median :233.0 Median :168.0 Median : 1.000 Median :0
Mean : 6.49 Mean :233.8 Mean :169.3 Mean : 6.536 Mean :0
3rd Qu.: 9.00 3rd Qu.:259.0 3rd Qu.:196.0 3rd Qu.: 7.000 3rd Qu.:0
Max. :12.00 Max. :356.0 Max. :244.0 Max. :145.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0.0000000 Min. :27.82 Min. :-17.89 Min. : 14.0
1st Qu.:0.0000000 1st Qu.:28.05 1st Qu.:-16.56 1st Qu.: 25.0
Median :0.0000000 Median :28.46 Median :-16.26 Median : 33.0
Mean :0.0003511 Mean :28.38 Mean :-15.96 Mean :131.9
3rd Qu.:0.0000000 3rd Qu.:28.48 3rd Qu.:-15.39 3rd Qu.: 64.0
Max. :2.0000000 Max. :28.95 Max. :-13.60 Max. :632.0
if (!empty_nodes) summary(df.cluster06)
fecha_cnt tmax tmin precip nevada
Min. : 5.000 Min. :210.0 Min. :105.0 Min. : 0.000 Min. :0
1st Qu.: 7.000 1st Qu.:272.0 1st Qu.:163.0 1st Qu.: 0.000 1st Qu.:0
Median : 8.000 Median :290.0 Median :181.0 Median : 3.000 Median :0
Mean : 7.578 Mean :292.5 Mean :180.4 Mean : 8.005 Mean :0
3rd Qu.: 9.000 3rd Qu.:311.0 3rd Qu.:198.0 3rd Qu.: 11.000 3rd Qu.:0
Max. :12.000 Max. :403.0 Max. :254.0 Max. :320.000 Max. :0
prof_nieve longitud latitud altitud
Min. :0 Min. :35.28 Min. :-6.9492 Min. : 1.0
1st Qu.:0 1st Qu.:37.42 1st Qu.:-4.4881 1st Qu.: 21.0
Median :0 Median :39.49 Median : 0.3664 Median : 68.6
Mean :0 Mean :39.42 Mean :-1.0363 Mean :130.2
3rd Qu.:0 3rd Qu.:41.48 3rd Qu.: 1.1789 3rd Qu.:185.0
Max. :0 Max. :43.36 Max. : 4.2156 Max. :953.0
if (!empty_nodes) summary(df.cluster07)
fecha_cnt tmax tmin precip nevada
Min. : 4.000 Min. :165.0 Min. : 54.0 Min. : 0.00 Min. :0
1st Qu.: 6.000 1st Qu.:231.0 1st Qu.:117.0 1st Qu.: 2.00 1st Qu.:0
Median : 7.000 Median :259.0 Median :136.0 Median : 8.00 Median :0
Mean : 7.425 Mean :263.6 Mean :137.2 Mean : 13.15 Mean :0
3rd Qu.: 9.000 3rd Qu.:294.0 3rd Qu.:155.0 3rd Qu.: 18.00 3rd Qu.:0
Max. :11.000 Max. :400.0 Max. :250.0 Max. :422.00 Max. :0
prof_nieve longitud latitud altitud
Min. : 0.00000 Min. :37.13 Min. :-8.649 Min. : 4.0
1st Qu.: 0.00000 1st Qu.:40.41 1st Qu.:-5.649 1st Qu.: 251.0
Median : 0.00000 Median :41.65 Median :-3.799 Median : 611.0
Mean : 0.00578 Mean :41.48 Mean :-4.081 Mean : 542.6
3rd Qu.: 0.00000 3rd Qu.:42.89 3rd Qu.:-2.483 3rd Qu.: 779.0
Max. :35.00000 Max. :43.57 Max. : 2.418 Max. :1894.0
if (!empty_nodes) summary(df.cluster08)
fecha_cnt tmax tmin precip
Min. : 1.000 Min. :-53.00 Min. :-121.00 Min. : 0.00
1st Qu.: 4.000 1st Qu.: 31.00 1st Qu.: -30.00 1st Qu.: 16.00
Median : 7.000 Median : 78.00 Median : 12.00 Median : 29.00
Mean : 6.569 Mean : 87.06 Mean : 16.29 Mean : 34.19
3rd Qu.:10.000 3rd Qu.:142.00 3rd Qu.: 65.00 3rd Qu.: 46.75
Max. :12.000 Max. :255.00 Max. : 146.00 Max. :180.00
nevada prof_nieve longitud latitud altitud
Min. :0 Min. : 0.00 Min. :40.78 Min. :-4.0103 Min. :1405
1st Qu.:0 1st Qu.: 0.00 1st Qu.:40.78 1st Qu.:-4.0103 1st Qu.:1894
Median :0 Median : 0.00 Median :42.38 Median : 0.8842 Median :2143
Mean :0 Mean : 13.81 Mean :41.93 Mean :-0.2669 Mean :2102
3rd Qu.:0 3rd Qu.: 0.00 3rd Qu.:42.53 3rd Qu.: 1.5242 3rd Qu.:2316
Max. :0 Max. :1834.00 Max. :42.77 Max. : 2.4378 Max. :2535
if (!empty_nodes) summary(df.cluster09)
fecha_cnt tmax tmin precip
Min. : 7.00 Min. : 8.0 Min. :-110.00 Min. : 0.00
1st Qu.:10.00 1st Qu.:110.0 1st Qu.: 22.00 1st Qu.: 7.00
Median :11.00 Median :140.0 Median : 53.00 Median : 16.00
Mean :10.97 Mean :144.7 Mean : 51.05 Mean : 23.24
3rd Qu.:12.00 3rd Qu.:180.0 3rd Qu.: 82.00 3rd Qu.: 31.00
Max. :12.00 Max. :268.0 Max. : 140.00 Max. :299.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :37.18 Min. :-8.649
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:40.48 1st Qu.:-5.642
Median :0.0000000 Median : 0.00000 Median :41.66 Median :-3.789
Mean :0.0006412 Mean : 0.06458 Mean :41.48 Mean :-3.714
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:42.59 3rd Qu.:-2.039
Max. :3.0000000 Max. :40.00000 Max. :43.57 Max. : 2.418
altitud
Min. : 4.0
1st Qu.: 442.0
Median : 656.0
Mean : 612.6
3rd Qu.: 846.0
Max. :1572.0
if (!empty_nodes) summary(df.cluster10)
fecha_cnt tmax tmin precip
Min. : 8 Min. : 64 Min. :-29.00 Min. : 0.00
1st Qu.:10 1st Qu.:158 1st Qu.: 65.00 1st Qu.: 4.00
Median :11 Median :184 Median : 94.00 Median : 13.00
Mean :11 Mean :186 Mean : 93.55 Mean : 20.13
3rd Qu.:12 3rd Qu.:217 3rd Qu.:123.00 3rd Qu.: 28.00
Max. :12 Max. :284 Max. :188.00 Max. :206.00
nevada prof_nieve longitud latitud
Min. :0.0000000 Min. : 0.00000 Min. :35.28 Min. :-6.9492
1st Qu.:0.0000000 1st Qu.: 0.00000 1st Qu.:37.79 1st Qu.:-3.7881
Median :0.0000000 Median : 0.00000 Median :39.56 Median : 0.4731
Mean :0.0002022 Mean : 0.02952 Mean :39.50 Mean :-0.8655
3rd Qu.:0.0000000 3rd Qu.: 0.00000 3rd Qu.:41.42 3rd Qu.: 1.3842
Max. :2.0000000 Max. :59.00000 Max. :43.36 Max. : 4.2156
altitud
Min. : 1.0
1st Qu.: 19.0
Median : 68.6
Mean :116.0
3rd Qu.:176.0
Max. :816.0
if (!empty_nodes) {
df.clusters.dim <- c(dim(df.cluster01)[1], dim(df.cluster02)[1], dim(df.cluster03)[1], dim(df.cluster04)[1], dim(df.cluster05)[1], dim(df.cluster06)[1], dim(df.cluster07)[1], dim(df.cluster08)[1], dim(df.cluster09)[1], dim(df.cluster10)[1])
barplot(df.clusters.dim,
names.arg = c("cluster01", "cluster02", "cluster03", "cluster04", "cluster05", "cluster06", "cluster07", "cluster08", "cluster09", "cluster10"),
col = "steelblue1")
}
if (!empty_nodes) mpr.hist(df.cluster01)
if (!empty_nodes) mpr.hist(df.cluster02)
if (!empty_nodes) mpr.hist(df.cluster03)
if (!empty_nodes) mpr.hist(df.cluster04)
if (!empty_nodes) mpr.hist(df.cluster05)
if (!empty_nodes) mpr.hist(df.cluster06)
if (!empty_nodes) mpr.hist(df.cluster07)
if (!empty_nodes) mpr.hist(df.cluster08)
if (!empty_nodes) mpr.hist(df.cluster09)
if (!empty_nodes) mpr.hist(df.cluster10)
if (!empty_nodes) mpr.boxplot(df.cluster01)
if (!empty_nodes) mpr.boxplot(df.cluster02)
if (!empty_nodes) mpr.boxplot(df.cluster03)
if (!empty_nodes) mpr.boxplot(df.cluster04)
if (!empty_nodes) mpr.boxplot(df.cluster05)
if (!empty_nodes) mpr.boxplot(df.cluster06)
if (!empty_nodes) mpr.boxplot(df.cluster07)
if (!empty_nodes) mpr.boxplot(df.cluster08)
if (!empty_nodes) mpr.boxplot(df.cluster09)
if (!empty_nodes) mpr.boxplot(df.cluster10)
# Agrupa por longitud y latitud para rellenar el mapa con menos datos.
if (!empty_nodes) {
df.cluster01.grouped <- mpr.group_by_geo(df.cluster01)
df.cluster02.grouped <- mpr.group_by_geo(df.cluster02)
df.cluster03.grouped <- mpr.group_by_geo(df.cluster03)
df.cluster04.grouped <- mpr.group_by_geo(df.cluster04)
df.cluster05.grouped <- mpr.group_by_geo(df.cluster05)
df.cluster06.grouped <- mpr.group_by_geo(df.cluster06)
df.cluster07.grouped <- mpr.group_by_geo(df.cluster07)
df.cluster08.grouped <- mpr.group_by_geo(df.cluster08)
df.cluster09.grouped <- mpr.group_by_geo(df.cluster09)
df.cluster10.grouped <- mpr.group_by_geo(df.cluster10)
}
if (!empty_nodes) mpr.draw_map(spain, df.cluster01.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster02.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster03.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster04.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster05.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster06.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster07.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster08.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster09.grouped)
if (!empty_nodes) mpr.draw_map(spain, df.cluster10.grouped)